package com.huarun.module.user.service;

import java.io.IOException;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.huarun.common.HeadAuthorization;
import com.huarun.common.IBaseService;
import com.huarun.common.ResponseMessage;
import com.huarun.module.user.bean.User;

/**
 * @author hqy
 * @创建时间 2018-10-12 11:42
 * @Description 类描述
 */
public interface IUserService extends IBaseService<User> {

	/**
	 * 根据条件获取用户信息
	 * 
	 * @param params
	 * @return
	 */
	User getUserByParams(Map<String, Object> params);

	/**
	 * 根据code获取用户的sessionKey
	 * 
	 * @param code
	 * @return
	 * @throws IOException
	 */
	public ResponseMessage<HeadAuthorization> getSessionKey(String code,HttpServletRequest req) throws IOException ;

	/**
	 * 根据 加密值，偏移量，解密数据并缓存
	 * @param encryptedData
	 * @param iv
	 * @param req
	 * @return
	 */
	ResponseMessage<String> decryptInfo(String encryptedData, String iv, HttpServletRequest req);
	/**
	 * 根据 加密值，偏移量，解密数据,缓存后，返回用户和角色信息
	 * @param encryptedData
	 * @param iv
	 * @param req
	 * @return
	 */

	 ResponseMessage<User>  saveUserInfo( HttpServletRequest req) throws Exception;

	
	/**
	 * 根据 加密值，偏移量，解密数据,缓存后，返回提示信息
	 * @param encryptedData
	 * @param iv
	 * @param req
	 * @return
	 */
	ResponseMessage<String> saveUserPhone(String encryptedData, String iv, HttpServletRequest req) throws Exception;
	User getUserByMobile(String mobile);

}
